package br.ufpe.cin.rgms.base.visitante.controller;

import java.util.List;

import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.Validator;
import br.ufpe.cin.rgms.base.visitante.dao.VisitanteDAO;
import br.ufpe.cin.rgms.base.visitante.model.Visitante;

@Resource
public class VisitanteController {

	private VisitanteDAO dao;
	private Result result;
	private Validator validator;

	public VisitanteController(VisitanteDAO dao, Result result,
			Validator validator) {

		this.dao = dao;
		this.result = result;
		this.validator = validator;
	}

	public List<Visitante> index(Visitante visitante) {
		List<Visitante> visitantes = null;

		visitantes = dao.findAllByFilter(visitante);
		if (visitantes.isEmpty()) {
			result.include("mensagem", "visitante_nao_encontrado");
		}

		return visitantes;
	}

	public void form() {
		result.include("visitanteList", dao.findAll());
	}

	public void adiciona(Visitante visitante) {
		if (visitante != null) {
			dao.salva(visitante);

			result.include("mensagem", "visitante_inserido");
			result.redirectTo(this).index(null);
		}
	}

	public Visitante detalhe(Integer id) {
		return dao.carrega(id);
	}

	public void remove(Visitante publicacao) {
		if (publicacao != null) {
			publicacao = dao.carrega(publicacao.getId());
			dao.delete(publicacao);
			result.include("mensagem", "visitante_excluido");
		}

		result.redirectTo(this).index(null);
	}
}
